Prog(3)
НАЗВАНИЕ ' prog - процессное устройство (по сути, task manager в файловом представлении) 'ВВОД bind #p /prog /prog/n/ctl /prog/n/dbgctl /prog/n/exception /prog/n/fd /prog/n/heap /prog/n/ns /prog/n/nsgrp /prog/n/pgrp /prog/n/stack /prog/n/status /prog/n/text /prog/n/wait ... ОПИСАНИЕ Процессное устройство создает двух-уровневый каталог, первый уровень которого содержит каталоги, отвечающие идентификаторам (pid) запущенных процессов Limbo; каждый такой каталог содержит набор файлов, которыми представлен сам процесс. Содержимое всех файлов представлено в формате UTF (см. utf(6)). Status-файл (только для чтения) содержит поля данных, разделенные пробелами. Поля содержат: идентификаторы процесса и группы процессов - 8 символов; имя пользователя - 10 символов; системное время в минутах, секундах и десятых долях секунды; состояние процесса - 10 символов; объем используемой процессом памяти, в кусках по 1024 байта - 5 символов с окончанием `K` (килобайт); и наконец, имя текущего модуля приложения - вплоть до 28 символов. Pgrp-файл (только для чтения) содержит индентификатор процессной группы в десятичном формате. Nsgrp-файл (только для чтения) содержит индентификатор группы протсранства имен в десятичном формате Ns-файл (только для чтения) содержит набор команд mount и bind (см. sys-bind(2)), формирующих файловое пространство имен в формате namespace(6). В последней строке файла указана команда cd, указывающая на рабочий каталог. Wait-файл (только для чтения) содержит информацию о дочерних процессах. Чтение файла блокируется, если присутствует хоть один из дочерних процессов, запущенных после открытия файла. Каждому дочернему процессу отвечает строка, состоящая из трех полей: pid дочернего процесса, имя модуля, завершающееся символами` \c `, а также сообщение об ошибке, которое может быть пустым, если ошибок нет. Сообщение об ошибке может содержать не более 64 символов. Fd-файл (только для чтения) describes the open file descriptors in the file descriptor group of the process. Каждая строка описывает открытый файл и содержит поля: индекс дескриптора, режим доступа к файлу( r , w , rw ); тип и номер устройства; путь, версию и тип идентификатора''qid'' (см. intro(5)); the file's atomic I/O unit, который описан вsys-iounit(2)); I/O оффсет (смещение) в байтах; и наконец, the name with which it was opened. Exception-файл (только для чтения) gives details of the last exception to occur in the process, if any. Поля содержат: the program counter value when the exception occurred, имя модуля, в котором it occurred и the exception itself, и разделенны пробелами. Если`исключений` нет, то файл содержит пустую строку. Команды, записанные в Ctl-файл (чувствителен к правам пользователя), управляют исполнением процессов: : kill - завершить процесс : : killgrp - завершить все процессы одной группы как единое приложение. Процесс, пишущий в собственный ctl-файл, не может завершить сам себя : : exceptions propagate : Applies to process group leaders only (ie any process that executes a system call sys->pctl (Sys->NEWPGRP, ...). If any process in the same group as the leader incurs an exception which it does not handle, atomically raise the exception in all processes in the group. In this case exceptions are generated for killed processes as well. This mechanism allows all processes in a process group to perfom error recovery when one of them faults. : : exceptions notifyleader : Applies to process group leaders only. If any process in the same group as the leader incurs an exception which it does not handle, atomically destroy all processes in the group except for the leader and raise the exception in the leader. This error recovery mechanism might be appropriate when a fault occurs amongst a group of processes and the group leader takes sole responsibilty for recovery. : : restricted : все будущие(???) нити обозначает как restricted. A restricted process is one which can run out of memory when a configured limit has been reached and before total memory is exhausted. An unrestricted process can allocate memory until memory is truly exhausted. Typically a window manager or server might be unrestricted as they are processes undamental to the running of a system. : Dbgctl-файл (чувствителен к правам пользователя) предоставляет возможность `дебага` (debugging). Команды, записанные в этот файл, позволяют контролировать исполнение текущего процесса: : step n'' - Step the interpreter for at most ''n instructions, or until a breakpoint is reached : toret - Step the interpreter until a return from the current activation frame or a breakpoint is reached : cont - Step the interpreter until a breakpoint is reached : stop - останавливает процесс, как только это становится возможным. Не позволяет процессу перезапуститься, пока не получена разблокирующая команда. : unstop - отменяет действие команды stop : bpt set path pc - устанавливает брекпойнт //Set a breakpoint at pc для модуля, путь которого задает''path'' : bpt del path pc - удаляет брекпойнт, если он существует Reading dbgctl gives updates for some state transitions while the process is being debugged. Each update is terminated by a newline : exited - The process exited without error : broken: error - The process died due to error , a string with up to 64 characters : send - The process is blocked sending on a channel : recv - The process is blocked receiving on a channel : alt - The process is blocked in an alt statement : run - The process is unblocked and now ready to run : new pid - The process has spawned a new process identified by pid Stack-файл (только для чтения) contains the dynamic call stack trace. Каждый фрейм описан одной строкой, содержащей 6 полей, разделенных пробелами: указатель фрейма, указатель счетчика, указатель данных и указатель кода, - каждое по 8 цифр в шестнадцатиричном формате; метод исполнения модуля (0 - означает `интерпретировано`, 1 - `скомпилировано`); и наконец путь к файлу модуля. Главный фрейм стартует с нулевым оффсетом (смещением). Heap-файл (только для чтения, чувствителен к правам пользователя) отражает состояние процесса. A data query contains an address, a period, a format character, and a count. An instruction query contains a pc, a plus, a mode address, a period, the format, and a count. The addresses in the query may be decimal, hexadecimal preceded by 0x or 0X , or octal preceded by 0 . Count gives the number of consecutive data items retrieved by reading heap starting at offset 0; the format varies according to the format character. All data items other than strings are terminated by a newline. : W - 32-bit decimal ints : B - 8-bit unsigned decimal bytes : V - 64-bit decimal bytes : R - 64-bit reals : I - дизасемблированные Dis-инструкции : P - 32-битный адрес вhex формате или простоnil The following formats examine properties of specific 32-bit pointers : L - Examine a list, yielding a pair of hexadecimal addresses separated by a period, giving the address of the head and tail of a list. It is an error to use L on nil : A - Examine an array, yielding a decimal length, a period, and the address of the 0th element of an array, or nil : C - Examine a string, yielding the decimal length in characters, a period, and the utf(6) representation of the string : M - Examine a module reference, yielding the address of it's global data or nil Text-файл (чувствителен к правам пользователя) ....//на деле - защита от доступа, а в манах сказано, что вообще не реализован???? ИСХОДНЫЙ КОД /emu/port/devprog.c /os/port/devprog.c Категория:Man